================================================================================
❓ FAQ - GENERATE VOUCHER AGENT
================================================================================

FREQUENTLY ASKED QUESTIONS (Pertanyaan yang Sering Ditanyakan)

================================================================================

Q1: Kenapa generate voucher dari agent gagal?
==============================================

A: Ada beberapa kemungkinan:

1. ❌ Admin belum login ke MikhMon
   ✅ Solusi: Login dulu sebagai admin, koneksi ke MikroTik

2. ❌ Fungsi randNULC() tidak ditemukan
   ✅ Solusi: File routeros_api.class.php tidak di-include
   
3. ❌ Harga profile belum diset
   ✅ Solusi: Set harga di admin panel → Kelola Harga Agent

4. ❌ Saldo agent tidak cukup
   ✅ Solusi: Topup saldo agent

5. ❌ Koneksi MikroTik gagal
   ✅ Solusi: Cek IP, username, password MikroTik

================================================================================

Q2: Apa perbedaan cara lama dan cara baru?
===========================================

A: 
CARA LAMA:
- Menggunakan API bridge yang kompleks
- Banyak layer yang bisa error
- Sulit debug

CARA BARU:
- Koneksi langsung ke MikroTik (seperti admin)
- Menggunakan fungsi MikhMon yang sudah TERBUKTI BERHASIL
- Simple dan reliable

Detail: Baca PERBANDINGAN_KODE.txt

================================================================================

Q3: Kenapa harus admin login dulu?
===================================

A: 
Agent menggunakan SESSION MikroTik dari admin untuk koneksi ke MikroTik.

Alur:
1. Admin login → Koneksi ke MikroTik → Session disimpan
2. Agent generate → Menggunakan session admin → Koneksi ke MikroTik

Jadi admin HARUS login dulu sebelum agent bisa generate voucher.

================================================================================

Q4: Apa itu fungsi randNULC()?
===============================

A:
randNULC() adalah fungsi untuk generate random string dengan kombinasi:
- Angka: 23456789
- Huruf besar: ABCDEFGHJKLMNPRSTUVWXYZ
- Huruf kecil: abcdefghijkmnprstuvwxyz

Contoh:
randNULC(8) → 2aB3cD5e
randNULC(6) → 5xY7zC

Fungsi ini ada di file: lib/routeros_api.class.php

Detail: Baca FUNGSI_HELPER_REFERENCE.txt

================================================================================

Q5: Kenapa username format AG + 8 karakter?
============================================

A:
- AG = Prefix untuk identifikasi agent
- 8 karakter = Random string (angka + huruf besar + huruf kecil)

Contoh: AG2aB3cD5e

Keuntungan:
- Mudah identifikasi voucher dari agent
- Unik dan sulit ditebak
- Konsisten dengan format MikhMon

================================================================================

Q6: Bagaimana cara set harga profile?
======================================

A:
1. Login sebagai admin
2. Buka menu "Agent Management"
3. Klik "Kelola Harga Agent"
4. Pilih agent
5. Pilih profile
6. Masukkan harga beli dan harga jual
7. Simpan

Contoh:
Profile: 1Jam
Harga Beli: Rp 2.000
Harga Jual: Rp 3.000
Profit: Rp 1.000

================================================================================

Q7: Bagaimana cara topup saldo agent?
======================================

A:
1. Login sebagai admin
2. Buka menu "Agent Management"
3. Klik "Topup Saldo"
4. Pilih agent
5. Masukkan jumlah topup
6. Simpan

Saldo agent akan bertambah sesuai jumlah topup.

================================================================================

Q8: Apakah voucher langsung aktif di MikroTik?
===============================================

A:
Ya! Voucher langsung aktif di MikroTik setelah di-generate.

Anda bisa cek di:
- MikroTik Winbox → IP → Hotspot → Users
- Cari username yang baru di-generate (AG...)

================================================================================

Q9: Bagaimana cara kirim voucher via WhatsApp?
===============================================

A:
1. Centang "Kirim via WhatsApp" saat generate
2. Masukkan nomor WhatsApp customer (08123456789)
3. Masukkan nama customer (opsional)
4. Generate voucher

Voucher akan otomatis terkirim ke WhatsApp customer.

Catatan: WhatsApp integration harus sudah dikonfigurasi.

================================================================================

Q10: Apakah bisa generate multiple voucher sekaligus?
======================================================

A:
Ya! Anda bisa generate multiple voucher sekaligus.

Cara:
1. Masukkan quantity (contoh: 5)
2. Generate voucher
3. Semua voucher akan ter-generate sekaligus

Saldo akan terpotong: harga beli × quantity

================================================================================

Q11: Bagaimana cara print voucher?
===================================

A:
Setelah generate berhasil:
1. Klik tombol "Print Voucher"
2. Tampilan print akan muncul
3. Pilih printer atau "Save as PDF"
4. Print

Voucher akan ter-print dengan format yang rapi.

================================================================================

Q12: Bagaimana cara copy voucher?
==================================

A:
Ada 2 cara:

1. Copy per voucher:
   - Klik tombol "Copy" di voucher card
   - Paste di notepad

2. Copy semua voucher:
   - Klik tombol "Copy Semua"
   - Paste di notepad
   - Semua voucher akan ter-copy

================================================================================

Q13: Bagaimana cara cek history transaksi?
===========================================

A:
1. Login sebagai agent
2. Buka menu "Transaksi"
3. Lihat history generate voucher
4. Filter by date jika perlu

Anda bisa lihat:
- Tanggal transaksi
- Profile
- Harga
- Saldo sebelum dan sesudah

================================================================================

Q14: Bagaimana cara cek voucher yang sudah di-generate?
========================================================

A:
1. Login sebagai agent
2. Buka menu "Voucher Saya"
3. Lihat semua voucher yang pernah di-generate
4. Filter by profile, status, tanggal

Anda bisa lihat:
- Username
- Password
- Profile
- Status (active/used/expired)
- Tanggal generate

================================================================================

Q15: Bagaimana cara cek profit?
================================

A:
1. Login sebagai agent
2. Buka dashboard
3. Lihat "Total Profit"

Profit dihitung dari:
(Harga Jual - Harga Beli) × Jumlah Voucher

Contoh:
Harga Beli: Rp 2.000
Harga Jual: Rp 3.000
Profit per voucher: Rp 1.000

Jika generate 10 voucher:
Total Profit: Rp 10.000

================================================================================

Q16: Apakah saldo agent bisa minus?
====================================

A:
Tidak! Sistem akan cek saldo sebelum generate.

Jika saldo tidak cukup, akan muncul error:
"Saldo tidak mencukupi. Saldo Anda: Rp X, Dibutuhkan: Rp Y"

Agent harus topup dulu sebelum bisa generate lagi.

================================================================================

Q17: Bagaimana cara update harga profile?
==========================================

A:
1. Login sebagai admin
2. Buka menu "Agent Management"
3. Klik "Kelola Harga Agent"
4. Pilih agent
5. Pilih profile yang mau diupdate
6. Update harga beli dan/atau harga jual
7. Simpan

Harga baru akan berlaku untuk generate berikutnya.

================================================================================

Q18: Apakah voucher bisa digunakan berkali-kali?
=================================================

A:
Tergantung setting profile di MikroTik.

Jika "Lock User" diaktifkan:
- Voucher hanya bisa digunakan di 1 device
- Jika login di device lain, akan logout otomatis

Jika "Lock User" tidak diaktifkan:
- Voucher bisa digunakan di multiple device
- Sesuai limit yang diset di profile

================================================================================

Q19: Bagaimana cara hapus voucher?
===================================

A:
Voucher tidak bisa dihapus dari agent panel.

Jika ingin hapus voucher:
1. Login ke MikroTik Winbox
2. IP → Hotspot → Users
3. Cari username voucher
4. Klik "Remove"

Atau via admin panel MikhMon:
1. Login sebagai admin
2. Buka "Hotspot Users"
3. Cari username voucher
4. Klik "Delete"

================================================================================

Q20: Bagaimana cara reset password voucher?
============================================

A:
Voucher tidak bisa direset dari agent panel.

Jika ingin reset password:
1. Login ke MikroTik Winbox
2. IP → Hotspot → Users
3. Cari username voucher
4. Double click
5. Ubah password
6. OK

Atau via admin panel MikhMon:
1. Login sebagai admin
2. Buka "Hotspot Users"
3. Cari username voucher
4. Klik "Edit"
5. Ubah password
6. Save

================================================================================

Q21: Apakah bisa generate voucher tanpa internet?
==================================================

A:
Bisa, asalkan:
1. MikroTik bisa diakses (LAN)
2. Server MikhMon bisa diakses (LAN)
3. Database MySQL berjalan

Tidak perlu internet untuk generate voucher.

Tapi jika mau kirim via WhatsApp, butuh internet.

================================================================================

Q22: Bagaimana cara backup data voucher?
=========================================

A:
Via phpMyAdmin:
1. Buka http://localhost/phpmyadmin
2. Pilih database: mikhmon
3. Pilih tabel: agent_vouchers
4. Klik "Export"
5. Pilih format (SQL/CSV/Excel)
6. Klik "Go"

Via MySQL Command:
mysqldump -u root -p mikhmon agent_vouchers > backup_vouchers.sql

================================================================================

Q23: Bagaimana cara restore data voucher?
==========================================

A:
Via phpMyAdmin:
1. Buka http://localhost/phpmyadmin
2. Pilih database: mikhmon
3. Klik "Import"
4. Pilih file backup
5. Klik "Go"

Via MySQL Command:
mysql -u root -p mikhmon < backup_vouchers.sql

================================================================================

Q24: Apakah bisa custom format username?
=========================================

A:
Ya, bisa! Edit file: mikhmon/agent/generate.php

Cari baris:
$username = 'AG' . randNULC(8);

Ubah sesuai keinginan:
$username = 'WIFI' . randNULC(6);  // WIFI + 6 karakter
$username = randNULC(10);          // 10 karakter tanpa prefix
$username = 'AG' . date('dmy') . randNULC(4);  // AG + tanggal + 4 karakter

================================================================================

Q25: Apakah bisa custom format password?
=========================================

A:
Ya, bisa! Edit file: mikhmon/agent/generate.php

Cari baris:
$password = randNULC(6);

Ubah sesuai keinginan:
$password = randN(6);       // Password angka saja
$password = randUC(8);      // Password huruf besar saja
$password = randNULC(8);    // Password 8 karakter

Atau password sama dengan username:
$password = $username;

================================================================================

Q26: Bagaimana cara monitoring voucher yang sudah digunakan?
=============================================================

A:
Via MikroTik:
1. Login ke MikroTik Winbox
2. IP → Hotspot → Active
3. Lihat user yang sedang online

Via admin panel MikhMon:
1. Login sebagai admin
2. Buka "Hotspot Active"
3. Lihat user yang sedang online

Via agent panel:
1. Login sebagai agent
2. Buka "Voucher Saya"
3. Filter by status: "Used"

================================================================================

Q27: Apakah bisa set limit voucher per agent?
==============================================

A:
Saat ini belum ada fitur limit voucher per agent.

Tapi bisa dibatasi via saldo:
- Agent hanya bisa generate sesuai saldo yang ada
- Jika saldo habis, tidak bisa generate lagi

Atau bisa custom di code:
- Tambahkan field "voucher_limit" di tabel agent_system
- Cek limit sebelum generate

================================================================================

Q28: Bagaimana cara menambah profile baru?
===========================================

A:
1. Login ke MikroTik Winbox
2. IP → Hotspot → User Profiles
3. Klik "+"
4. Isi nama profile dan setting
5. OK

Atau via admin panel MikhMon:
1. Login sebagai admin
2. Buka "Hotspot Profiles"
3. Klik "Add Profile"
4. Isi nama profile dan setting
5. Save

Setelah itu, set harga untuk agent:
1. Buka "Agent Management" → "Kelola Harga Agent"
2. Pilih agent
3. Pilih profile baru
4. Set harga beli dan harga jual
5. Simpan

================================================================================

Q29: Apakah bisa multi-agent?
==============================

A:
Ya! Sistem sudah support multi-agent.

Setiap agent:
- Punya saldo sendiri
- Punya harga profile sendiri
- Punya history transaksi sendiri
- Punya voucher sendiri

Admin bisa manage semua agent dari admin panel.

================================================================================

Q30: Bagaimana cara menghubungi support?
=========================================

A:
Jika masih ada masalah setelah membaca dokumentasi:

1. Baca dokumentasi lengkap:
   - START_HERE_GENERATE.txt
   - TESTING_GENERATE_AGENT.txt
   - TROUBLESHOOTING

2. Cek log error:
   - Browser console (F12)
   - Apache error log
   - PHP error log

3. Cek database:
   - phpMyAdmin
   - MySQL command line

4. Test dengan command:
   - Baca QUICK_COMMANDS.txt

5. Jika masih gagal:
   - Screenshot error
   - Copy error message
   - Hubungi developer

================================================================================

TIPS & TRICKS:
==============

1. ✅ Selalu login admin dulu sebelum agent generate
2. ✅ Test dengan 1 voucher dulu sebelum generate banyak
3. ✅ Backup database secara berkala
4. ✅ Monitor saldo agent secara berkala
5. ✅ Set harga profile dengan benar (jual > beli)
6. ✅ Gunakan prefix untuk identifikasi voucher
7. ✅ Aktifkan WhatsApp untuk kemudahan customer
8. ✅ Print voucher untuk dokumentasi
9. ✅ Monitor log MikroTik untuk error
10. ✅ Update dokumentasi jika ada perubahan

================================================================================

BEST PRACTICES:
===============

1. ✅ Gunakan password yang kuat untuk agent
2. ✅ Jangan share password agent ke orang lain
3. ✅ Topup saldo secukupnya (jangan terlalu banyak)
4. ✅ Cek voucher sebelum diberikan ke customer
5. ✅ Simpan history transaksi untuk audit
6. ✅ Backup database sebelum update sistem
7. ✅ Test di environment testing dulu sebelum production
8. ✅ Monitor performa sistem secara berkala
9. ✅ Update sistem secara berkala
10. ✅ Dokumentasikan setiap perubahan

================================================================================

KESIMPULAN:
===========

Generate voucher agent sekarang sudah menggunakan cara yang SAMA dengan
MikhMon admin yang sudah TERBUKTI BERHASIL!

Jika masih ada pertanyaan, baca dokumentasi lengkap:
- START_HERE_GENERATE.txt
- TESTING_GENERATE_AGENT.txt
- GENERATE_FIXED_FINAL.txt
- PERBANDINGAN_KODE.txt
- FUNGSI_HELPER_REFERENCE.txt
- DIAGRAM_GENERATE_FLOW.txt
- QUICK_COMMANDS.txt

SELAMAT MENGGUNAKAN! 🎉

================================================================================
